home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MYUTIL / MODSTATE.M < prev    next >
Encoding:
Text File  |  1990-05-10  |  3.0 KB  |  94 lines

  1. MODULE ModState;
  2.  
  3. IMPORT TOSIO; (*$E MOS *)
  4.  
  5. (* internes Programm! zeigt ModState an *)
  6.  
  7. FROM SYSTEM IMPORT ADDRESS;
  8.  
  9. FROM Lists IMPORT ResetList, PrevEntry, RemoveEntry, DeleteList, List,
  10.         ScanEntries, LDir;
  11.  
  12. FROM ModBase IMPORT ModRef, ModState, ModLst;
  13.  
  14. FROM InOut IMPORT
  15.   WriteLn, Write, WriteString, WriteLHex, WriteCard, Read, FlushKbd, BusyRead;
  16.  
  17. FROM Strings IMPORT Length;
  18.  
  19. FROM ArgCVIO IMPORT InitArgCV, PtrArgStr;
  20.  
  21.  
  22. PROCEDURE listIt (ref: ModRef);
  23.   
  24.   VAR i: CARDINAL;  c: CHAR;
  25.   
  26.   BEGIN
  27.     WITH ref^ DO
  28.       IF TRUE (* NOT (linked IN state) *) THEN
  29.         WriteString ( codeName^ );
  30.         FOR i:= 1 TO 18 - Length (codeName^) DO Write (' ') END;
  31.         WriteString (' Code: ');
  32.         WriteLHex (codeStart, 7);
  33.         WriteLHex (codeStart+codeLen, 7);
  34.         WriteString (', Len: ');
  35.         WriteCard (codeLen, 6);
  36.         WriteString (', Header: ');
  37.         WriteLHex (header, 7);
  38.         (*
  39.         WriteString (', HeadLen: ');
  40.         WriteCard (ADDRESS(codeStart)-ADDRESS(header), 6);
  41.         *)
  42.         (*
  43.         IF mainMod IN state THEN WriteString ('main ') END;
  44.         IF installed IN state THEN WriteString ('inst ') END;
  45.         IF loaded IN state THEN WriteString ('load ') END;
  46.         IF running IN state THEN WriteString ('run ') END;
  47.         IF initialized IN state THEN WriteString ('ini ') END;
  48.         IF firstCall IN state THEN WriteString ('1st ') END;
  49.         IF crunched IN state THEN WriteString ('crun ') END;
  50.         IF msr1 IN state THEN WriteString ('msr1 ') END;
  51.         IF msr2 IN state THEN WriteString ('msr2 ') END;
  52.         *)
  53.         WriteLn;
  54.         BusyRead (c);
  55.         IF c # 0C THEN REPEAT BusyRead (c) UNTIL c # 0C END
  56.       END
  57.     END
  58.   END listIt;
  59.  
  60.  
  61. TYPE ModQueryProc= PROCEDURE ( ModRef );
  62.  
  63. PROCEDURE scanMod ( i:ADDRESS; c:ADDRESS ): BOOLEAN;
  64.   VAR m: ModRef; call: ModQueryProc;
  65.   BEGIN
  66.     m:=i;
  67.     call:= ModQueryProc (c);
  68.     call (m);
  69.     RETURN FALSE
  70.   END scanMod;
  71.  
  72. PROCEDURE ModQuery ( call: ModQueryProc );
  73.   VAR ok: BOOLEAN; l:List;
  74.   BEGIN
  75.     l:=ModLst;
  76.     ResetList (l);
  77.     ScanEntries (l, forward, scanMod, ADDRESS (call), ok)
  78.   END ModQuery;
  79.  
  80. VAR ch:CHAR;
  81.     dummyArg: PtrArgStr;
  82.     dummyC: CARDINAL;
  83.  
  84. BEGIN
  85.   InitArgCV (dummyC, dummyArg); (* Damit E/A-Umleitung möglich ist. *)
  86.   WriteLn;
  87.   ModQuery (listIt);
  88.   WriteString ('<CR>...');
  89.   FlushKbd;
  90.   REPEAT Read (ch) UNTIL ch = CHR (13);
  91. END ModState.
  92. ə
  93. (* $FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$00000258$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259$FFF8B259Ç$00000238T.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$0000041F$00000295$FFE802DE$0000030D$0000032E$000003CC$0000043A$0000023B$00000254$FFEDC8BE$FFEDC8BE$00000238$000003E0$0000035A$FFEC6940$0000043AãÇÇ*)
  94.